1. Field of the Invention
This invention relates generally to industrial controllers and specifically to circuitry for connecting remote I/O units, by means of a serial communications link, to the industrial controller.
2. Background Art
Industrial controllers such as those described in U.S. Pat. Nos. 3,810,118, 3,942,158, 4,165,534 and 4,442,504 are typically connected to industrial equipment such as assembly lines or machine tools to operate such processes or equipment in accordance with a stored program. In industrial controllers, such as those disclosed in the above cited patents, the stored program includes instructions which, when executed, examine the condition of selected inputs to the controller from sensing devices on the controlled equipment and energize or de-energize selected outputs from the controller to operate devices on the controlled equipment.
Typically, inputs to the controller may be discrete binary signals such as those from switches which may detect limits of process variables such as motion, temperature, time, or other quantities, or the inputs may be analog measures of the process variables themselves, which are generally then converted to digital binary form for processing. Likewise, the outputs of the controller may be either binary outputs as implemented by mechanical or solid-state relays, or analog outputs produced by means of a digital to analog converter.
The inputs and outputs processed by the controller are received by the controller through I/O modules. A number of I/O modules may be placed with the controller in a rack containing a backplane which electrically interconnects the I/O modules with the controller. Alternatively, the I/O modules may be remotely located and connected to the controller by means of a serial communications "link". An I/O scanner incorporated into the controller allows the controller to send and receive data on this link.
Remote I/O modules may be grouped together within a remote rack and connected to the serial link by means of an adapter. The adapter provides an interface between the serial data on the link and the backplane of the rack and thus provides a shared means for each I/O module to receive and transmit data on the link.
Multiple adapters may be connected to the link each with a separate address to distinguish its own messages from those sent to other adapters. A remote rack may hold 16, 12, 8, or 4 I/O modules and therefore the address of an adapter includes a rack address and a starting quarter to permit multiple racks with less than 16 I/O modules to share one rack address.
For physical locations where only one I/O module is required, a "node adapter" may be connected to the serial link in place of a remote rack and adapter. The node adapter operates in a manner analogous to an adapter on a rack, however, rather than communicating with a plurality of I/O modules distributed on a backplane, the node adapter communicates with only a single I/O module or "node circuitry". In lieu of a backplane, data is typically transferred between the serial link and the node circuitry by means of a random access memory ("RAM") associated with the node adapter. The RAM is read from and written to by a microprocessor associated with the node circuitry.
It is important that the interface between the node adapter and the node circuitry be simple because the burden of the complexity and cost of the interface circuitry is not shared among multiple I/O modules. Maintaining the simplicity of the interface between the node adapter and the node circuitry, however, is complicated by the fact that there is a wide variety of microprocessors that may be used in the node circuitry and each microprocessor may vary in its interface conventions.
For example, there are two common random access memory ("RAM") interface conventions used by most microprocessors. The first of these, termed the "dual strobe convention", makes use of a "read strobe" signal and a "write strobe" signal. The presence of the read strobe and not the write strobe indicates that a read cycle is being requested with the timing of the read cycle indicated by the leading edge of the read strobe signal. Conversely, the presence of the write strobe and not read strobe indicates that a write cycle is requested with the timing indicated by the leading edge of the write strobe signal. This dual strobe RAM interface convention is found, for example, in the Z-80 series of microprocessors manufactured by Zilog of Cupertino, Calif.
The second RAM interface convention is termed the "single strobe protocol". The single strobe protocol makes use of a single undifferentiated "strobe" line and a separate "read/write" line. At the leading edge of the strobe signal a read or write cycle will be started depending on the state of the read/write line. This protocol is found in the 68000 series of microprocessors manufactured by Motorola.
Microprocessors may also differ as to their ability to handle interrupts. Hardware interrupts are a useful interface technique that may increase processing efficiencies in situations when it is necessary that certain conditions be continuously monitored. For example, the serial communications link must be continuously monitored by the node adapter for messages addressed to that node. Those messages must then be passed along to the node microprocessor.
Without the ability to handle interrupts, the microprocessor must continuously poll the node adapter to see if a message has been received. With the ability to handle interrupts, the microprocessor may attend to other tasks and when a message is received by the node adapter, the node adapter interrupts the microprocessor. On receipt of the interrupt, the microprocessor will suspend its current program and start a new program to accept the received message. There may be several different types of interrupts, each associated with a different condition. In order to determine which program to execute on receipt of an interrupt, the node microprocessor typically will receive an interrupt vector from the node adapter which indicates the correct interrupt program to be executed.
The node adapter must be able to rapidly process serial data received from the link. In order to improve the speed with which data may be processed, it is generally known to divide the various communications functions among different processing units. For example, a serial I/O unit may handle the basic serial communications protocols, passing the received data to a more sophisticated controller which handles the higher level communications protocols. Often, processing of the higher level protocols by the controller requires information extracted from the data during the processing of the lower level protocols by the serial I/O unit, for example, indications of certain control characters normally stripped away by the serial I/O unit. Nevertheless, communication of this occasional status information between the serial I/O unit and the controller uses valuable data cycle transfers and hence may reduce the overall operating speed of the node adapter.